#pragma once
#include <string>
#include "Xps/Object/IObject.h"

namespace Xps
{
    class TextMessage :
        public std::string, public IObject
    {
    public:

        virtual ObjectType getType() const;

        virtual void serialize( boost::archive::binary_oarchive & ar, const unsigned int version );

        virtual void serialize( boost::archive::binary_iarchive & ar, const unsigned int version );

    private:
        template<typename Archive>
        void serialize( Archive & ar);
    };

    template<typename Archive>
    void TextMessage::serialize( Archive & ar)
    {
        ar & *this;
    }
};